// Generator

// function* foo (){
//     for(let i=0;i<3;i++){
//         yield i
//     }
    
// }
// var p =foo()
// // console.log(p); 需要手动执行
// console.log(p.next());// 0{value: 0, done: false}
// console.log(p.next());//  {value: 1, done: false}
// console.log(p.next());//  {value: 2, done: false}
// console.log(p.next());//  {value: undefined, done: true}


// 下列会报错 yield只能使用在Generator函数内部
// function* gen(args){
//     args.forEach(item=>{
//         yield item 
//     })
// }

// function* gen(x){
//     let y=2 * (yield x+1)
//     let z=yield(y/3)
//     return x + y + z
// }
// var p =gen(5)
// // next 代表上一次yield的返回值
// console.log(p.next());//6
// console.log(p.next());//nan
// console.log(p.next());//nan


// function* gen(x){
//     let y=2 * (yield x+1)
//     let z=yield(y/3)
//     return x + y + z
// }
// var p =gen(5)
// // next 代表上一次yield的返回值
// console.log(p.next());//6
// console.log(p.next(12));//y=24 8
// console.log(p.next(13));//42  z=13 x=5 y=24


// function* count(x=1){
//     while (true) {
//         if(x % 5===0){
//             yield x
//         }
//         x++
//     }
// }
// var p = count()
// console.log(p.next().value);//5
// console.log(p.next().value);//10
// console.log(p.next().value);//15

